/*
  databind混入，是、给业务管理列表组件使用的。封装了数据加载、查询、排序、多选等一系列操作，简化业务组件的代码量。
  1，可混入到PageableTable组件
  2，可混入到AssetTable组件
*/
import { on, off } from '@neu/biz-core/utils/utils'
import { debounce } from '@neu/biz-core/utils'

export default {
  data() {
    return {
      $_resizeHandler: null, // 自适应高度处理函数
      availableHeight: 0
    }
  },
  mounted: function() {
    // 初始化页面改变监听
    this.$nextTick(function() {
      this.initListener()
      this.$_resizeHandler()
    })
  },
  methods: {
    initListener() {
      this.$_resizeHandler = debounce(() => {
        const _this = this
        _this.availableHeight = window.innerHeight - _this.getPageHeaderHeight() - _this.getOtherContentHeight()
      }, 20)

      on(window, 'resize', this.$_resizeHandler)
    },
    getPageHeaderHeight() {
      return 50
    },
    getOtherContentHeight() {
      return 0
    }
  },
  beforeDestroy() {
    off(window, 'resize', this.$_resizeHandler)
  }
}
